home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 25: Programming / pc_actual_25.iso / Delphi / MP3 Blade Encoder Component 1.0 / DEMO / UNIT1.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1999-05-05  |  2.4 KB  |  89 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   MMBlade, MMHook, MMDesign, MMWave, MMObj, MMDSPObj, MMTrigg, StdCtrls,
  8.   MMsystem, MMGauge, MMCstDlg, MMUtils, ExtCtrls;
  9.   
  10. type
  11.   TForm1 = class(TForm)
  12.     Trigger: TMMTrigger;
  13.     WaveFile: TMMWaveFile;
  14.     MMDesigner1: TMMDesigner;
  15.     btnEncode: TButton;
  16.     Gauge: TMMGauge;
  17.     MP3Encoder: TMMMP3Encoder;
  18.     btnCancel: TButton;
  19.     OpenDialog: TMMWaveOpenDialog;
  20.     Timer: TTimer;
  21.     procedure btnEncodeClick(Sender: TObject);
  22.     procedure TriggerStart(Sender: TObject);
  23.     procedure TriggerStop(Sender: TObject);
  24.     procedure btnCancelClick(Sender: TObject);
  25.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  26.     procedure TimerTimer(Sender: TObject);
  27.   private
  28.   public
  29.   end;
  30.  
  31. var
  32.   Form1: TForm1;
  33.  
  34. implementation
  35.  
  36. {$R *.DFM}
  37.  
  38. {------------------------------------------------------------------------------}
  39. procedure TForm1.btnEncodeClick(Sender: TObject);
  40. begin
  41.    if OpenDialog.Execute then
  42.    begin
  43.       WaveFile.Wave.FileName := OpenDialog.FileName;
  44.       if MP3Encoder.FileType = ftRAW then
  45.          MP3Encoder.FileName := CheckPath(ExtractFilePath(OpenDialog.FileName),True)+'Encode.mp3'
  46.       else
  47.          MP3Encoder.FileName := CheckPath(ExtractFilePath(OpenDialog.FileName),True)+'Encode.wav';
  48.       Trigger.Start;
  49.    end;
  50. end;
  51.  
  52. {------------------------------------------------------------------------------}
  53. procedure TForm1.TriggerStart(Sender: TObject);
  54. begin
  55.    btnEncode.Enabled := False;
  56.    btnCancel.Enabled := True;
  57.    Timer.Enabled := True;
  58. end;
  59.  
  60. {------------------------------------------------------------------------------}
  61. procedure TForm1.TriggerStop(Sender: TObject);
  62. begin
  63.    // close the trigger (and all other components)
  64.    Trigger.Close;
  65.    btnEncode.Enabled := True;
  66.    btnCancel.Enabled := False;
  67.    Gauge.Progress    := 0;
  68.    Timer.Enabled := True;
  69. end;
  70.  
  71. {------------------------------------------------------------------------------}
  72. procedure TForm1.btnCancelClick(Sender: TObject);
  73. begin
  74.    Trigger.Stop;
  75. end;
  76.  
  77. {------------------------------------------------------------------------------}
  78. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  79. begin
  80.    Trigger.Close;
  81. end;
  82.  
  83. procedure TForm1.TimerTimer(Sender: TObject);
  84. begin
  85.    Gauge.Progress := Round((WaveFile.Wave.Position*100)/WaveFile.Wave.DataSize);
  86. end;
  87.  
  88. end.
  89.